package com.gkzf.ai.module.crm.service.creditreportsimple.app;

import com.gkzf.ai.framework.common.pojo.PageResult;
import com.gkzf.ai.module.crm.controller.admin.simpleCredit.vo.CreditReportSimpleRespVO;
import com.gkzf.ai.module.crm.controller.admin.simpleCredit.vo.CreditReportSimpleSaveReqVO;
import com.gkzf.ai.module.crm.controller.app.simpleCredit.vo.simple.SimplePageReqVO;
import com.gkzf.ai.module.crm.dal.dataobject.creditReport.CreditReportDO;
import com.gkzf.ai.module.crm.dal.dataobject.creditreportsimple.CreditReportSimpleDO;
import jakarta.validation.Valid;

/**
 * CRM 征信报告简版 Service 接口
 *
 * @author 国科智飞
 */
public interface AppCreditReportSimpleService {

    /**
     * 创建CRM 征信报告简版
     *
     * @param createReqVO 创建信息
     */
    void createCreditReportSimple(@Valid CreditReportSimpleSaveReqVO createReqVO,CreditReportSimpleDO creditReportSimple, CreditReportDO creditReportDO);


    /**
     * 创建CRM 征信报告简版
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    CreditReportSimpleDO createCreditReportSimple(@Valid CreditReportSimpleSaveReqVO createReqVO);

    /**
     * 获得CRM 征信报告简版
     *
     * @param id id
     * @return CRM 征信报告简版
     */
    CreditReportSimpleRespVO getCreditReportSimple(Long id);

    /**
     *  解析失败 重试一次
     * @param id 简版征信Id
     */
    void tryAgain(Long id);

    /**
     * 更新解析状态
     * @param id
     */
    void updateStatus(Long id);


    /**
     * 分析征信报告
     * @param detailsDO
     * @return
     */
    String analysisCreditReport(CreditReportSimpleSaveReqVO detailsDO);

    /**
     * 获取征信报告简版分页
     * @param simplePageReqVO 分页
     * @return 分页结果
     */
    PageResult<CreditReportSimpleRespVO> getCreditReportSimplePage(SimplePageReqVO simplePageReqVO);
}